#include "GeneratePresignedUrlRequest.h"

#include <utility>

namespace ks3::sdk {

GeneratePresignedUrlRequest::GeneratePresignedUrlRequest(std::string bucket, std::string key) : bucket_(std::move(bucket)), key_(std::move(key)) {
	method_ = MethodType::GET_METHOD;
}

GeneratePresignedUrlRequest::GeneratePresignedUrlRequest(std::string bucket, std::string key, MethodType method) : bucket_(std::move(bucket)), key_(std::move(key)), method_(method) {
}

void GeneratePresignedUrlRequest::SetBucket(const std::string& bucket) {
	bucket_ = bucket;
}

const std::string& GeneratePresignedUrlRequest::GetBucket() const {
	return bucket_;
}

void GeneratePresignedUrlRequest::SetKey(const std::string& key) {
	key_ = key;
}

const std::string& GeneratePresignedUrlRequest::GetKey() const {
	return key_;
}

void GeneratePresignedUrlRequest::SetMethod(MethodType method) {
	method_ = method;
}

MethodType GeneratePresignedUrlRequest::GetMethod() const {
	return method_;
}

void GeneratePresignedUrlRequest::SetExpires(int64_t expires) {
	expires_ = std::to_string(expires);
}

const std::string& GeneratePresignedUrlRequest::GetExpires() const {
	return expires_;
}

void GeneratePresignedUrlRequest::SetParameters(const std::map<std::string, std::string>& parameters) {
	parameters_ = parameters;
}

const std::map<std::string, std::string>& GeneratePresignedUrlRequest::GetParameters() const {
	return parameters_;
}

void GeneratePresignedUrlRequest::SetHeaders(const std::map<std::string, std::string>& headers) {
	headers_ = headers;
}

const std::map<std::string, std::string>& GeneratePresignedUrlRequest::GetHeaders() const {
	return headers_;
}

}